package main

import "fmt"

func updateSlice(arr []int) {
	arr[0] = 100
}

func main() {

	arr := [...]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
	// arr := [...]int{0, 1, 2, 3, 4, 5, 6, 7, 8}

	s1 := arr[2:6]
	s2 := s1[2:6]
	fmt.Println("s1 =", s1) // [2 3 4 5]
	fmt.Println("s2 =", s2) // [4 5 6 7]

	s3 := append(s2, 11)
	fmt.Println("s3 =", s3)

	s4 := append(s3, 12)
	fmt.Println("s4 =", s4)

	s5 := append(s4, 13)
	fmt.Println("s5 =", s5)

	// append的时候，操作的是len，len+1的地方就是append的值
	// cap长度够的情况，对cap就是一个覆盖（对切片是追加，对cap是一个覆盖）
	// 长度不够的时候就是新开一个数组，这个时候就是追加了
	fmt.Println("arr =", arr)
}
